﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Model;
using HRP.Utilidades;

namespace HRP.Private.Agenda
{
    public partial class ler : System.Web.UI.Page
    {
        public string idField;
        protected void Page_Load(object sender, EventArgs e)
        {

            idField = "\n$(\"#" + dataInicioTB.ClientID + "\"" + @").datepicker({ 
                                    dateFormat: 'yy-mm-dd',
                                    monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
                                    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
                                    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']});";
            idField += "\n$(\"#" + dataFimTB.ClientID + "\"" + @").datepicker({ 
                                    dateFormat: 'yy-mm-dd', 
                                    monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
                                    dayNamesMin: ['D', 'S', 'T', 'Q', 'Q', 'S', 'S'],
                                    dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']});";

            formPanel.Visible = true;
            msgPanel.Visible = false;

            Label1.Visible = false;
            apagarEventoBT.Click+=apagarEventoBT_Click;



            if (!Page.IsPostBack)
            {
                carregarEventos();
                lerEvento();
            }

        }

        void lerEvento()
        {
            int eventoID = 0;
            try
            {

                Int32.TryParse(Request.QueryString["id"], out eventoID);
                var evento = Evento_BLL.Instance.ObterEvento(eventoID);

                if (evento.id_cliente == Convert.ToInt32(Session["idclient"]))
                {                    
                    dataInicioTB.Text = evento.data_inicio.ToString(DefinicoesSite.DataFormato);
                    dataFimTB.Text = evento.data_fim.ToString(DefinicoesSite.DataFormato);
                    assuntoTB.Text = evento.titulo.ToString();
                    observacaoTB.Text = evento.observacao.ToString();

                    string horainit = evento.data_inicio.Hour.ToString().Length == 1 ? "0" + evento.data_inicio.Hour.ToString() : evento.data_inicio.Hour.ToString();
                    string mininit = evento.data_inicio.Minute.ToString().Length == 1 ? evento.data_inicio.Minute.ToString() + "0" : evento.data_inicio.Minute.ToString();
                    horaInitDL.SelectedValue = horainit + ":" + mininit;

                    string horafim = evento.data_fim.Hour.ToString().Length == 1 ? "0" + evento.data_fim.Hour.ToString() : evento.data_fim.Hour.ToString();
                    string minfim = evento.data_fim.Minute.ToString().Length == 1 ? evento.data_fim.Minute.ToString() + "0" : evento.data_fim.Minute.ToString();
                    horaFimDL.SelectedValue = horafim + ":" + minfim;
                    var tipo_evento = Evento_BLL.Instance.ObterTipoEvento(evento.tipo_evento);
                    eventoDL.SelectedValue = evento.tipo_evento.ToString();
                    hrp_funcionario funcionario = Funcionario_BLL.Instance.ObterFuncionarioPorId(evento.id_cliente, evento.id_empresa, evento.id_funcionario);
                    if (funcionario != null)
                        funcionarioLabel.Text = funcionario.nome;                   

                }
            }
            catch (Exception)
            {
                throw;
            }
        }

        void carregarEventos()
        {
            eventoDL.DataSource = Evento_BLL.Instance.ObterTiposEventos();
            eventoDL.DataBind();
        }

        protected void criarEventoBT_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
            {
                return;
            }
            else
            {
                DateTime dataI = Convert.ToDateTime(dataInicioTB.Text + "T" + horaInitDL.SelectedValue.Trim() + ":00.000000");
                DateTime dataF = Convert.ToDateTime(dataFimTB.Text + "T" + horaFimDL.SelectedValue.Trim() + ":00.000000");
                hrp_empresas empresaActual = (hrp_empresas)Session["EmpresaActual"];
                if (dataI > dataF)
                {
                    Label1.Text = "A Data de inicio do evento, é superior á data de fim do evento.";
                    Label1.Visible = true;
                    return;
                }
                else
                {

                    int idEmpresa = empresaActual.id;
                    int eventoId = 0;

                    Int32.TryParse(eventoDL.SelectedItem.Value, out eventoId);

                    int selectedEvent = 0;
                    Int32.TryParse(Request.QueryString["id"], out selectedEvent);
                    try
                    {
                        Evento_BLL.Instance.AlterarEvento(selectedEvent, assuntoTB.Text, dataI,
                                             dataF, eventoId, Session["userid"].ToString(), DateTime.Now,
                                              Request.UserHostAddress, false, Convert.ToInt32(Session["idclient"]), idEmpresa, 0,
                                              observacaoTB.Text);
                        formPanel.Visible = false;
                        msgPanel.Visible = true;
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }

        }

        protected void apagarEventoBT_Click(object sender, EventArgs e)
        {
            int selectedEvent = 0;
            Int32.TryParse(Request.QueryString["id"], out selectedEvent);
            try
            {
                Evento_BLL.Instance.ApagarEvento(selectedEvent, Session["userid"].ToString(),Request.UserHostAddress.ToString() ,DateTime.Now);
                formPanel.Visible = false;
                msgPanel.Visible = false;
                deletePanel.Visible = true;
            }
            catch (Exception)
            {                
                throw;
            }
        }
    }
}